#pragma once
#include <string>
#include <File.h>
#include <vector>
using namespace std;
//目录
class Directory : public FcbMsg
{
public:
	vector<Directory*> getDirs();                 //获得所有子目录
	vector<File*> getFiles();                     //获得所有文件
	bool createDir(string name);                  //创建一个子目录
	bool removeDir(string name);                  //删除一个空的子目录
	bool createAFile(string name);                //创建一个文件
	bool removeAFile(string name);                //删除一个文件
	bool exportFile(string name, string newName); //导出一个文件， name是虚拟磁盘文件名
	bool importFile(string name, string newName); //导入一具文件， name是运行路径下某个文件
	bool has(string name);                        //判断目录下是否有此名字
	File* getFile(string name);                   //获得目录下一个文件，如果文件不存在，则返回0
	Directory* getDir(string name);               //获得目录下一个子目录，如果不存在，则返回0
	static Directory* getRoot(string diskname);   //得到某个虚拟磁盘的根目录
	
private:
	Directory(FCB fcb, string name);
};


